1. Field of the Invention
The present invention generally relates to a decoding device and a decoding method, and more particularly, to a decoding device for decoding a product code and a decoding method using the same.
2. Description of Related Art
In a playing or a recording system for digital video-audio signals, a product code application has become one of main encoding types. FIG. 1 schematically shows a conventional product code block 100. Referring to FIG. 1, the product code block 100 may be divided into a plurality of inner codes 110 with n1 length in a row direction and k1 dimension, and a plurality of outer codes 120 with n2 length in a column direction and k2 dimension. As a result, a decoder may first proceed with a decoding action in one direction in the product code block 100 to correct a portion of errors, and then proceed with the decoding action in another direction to correct the remaining portion of errors. Thus, by repeating this interleaving decoding procedure for several times, an error-correction rate of data can be raised by using the playing or a recording system for digital video-audio signals that exploit the product code 1.
In a conventional product code decoding method, when uncorrectable rows or columns are found after decoding in a certain direction is completed, the uncorrectable rows or columns are flagged an erasure by using an erasure flag. Besides, the rest of rows or columns are flagged an accuracy and these accuracy-flagged or erasure-flagged symbols are inputted to the decoder for proceeding with decoding in a row (column). However, if data to be decoded contain too many error symbols, mis-correction inevitably occurs. Meanwhile, the decoder not only fails to correct the inherent error symbols but executes an error-correction for the inherent accurate symbols. Because the inherent accurate symbols become the incorrect symbols, more incorrect symbols are generated.
FIG. 2 schematically shows a configuration of a decoder for product code decoding. To solve the problems described above, the U.S. Pat. No. 6,415,411 B1 provides a method for counting the number of rows corrected by an inner code and error-corrected-symbol in column, and flagging erasure symbols by erasure flags, and a configuration for decoding a product code. Referring to FIGS. 1 and 2, a conventional decoding device 200 first inputs inner codes 110 in each row in the product code block 100 into a C1 correction circuit 210 to proceed with inner code decoding, and then counts the respective numbers of the uncorrectable rows and error corrected rows by using an error corrected row counter 220 and stores the states of the corrected rows in an row correction state storage circuit 230. Next, an error-corrected-symbol-in-column counter 250 counts the number of corrected symbols corrected by the inner code decoding in each column and the states of the error corrected symbols are stored in a symbol correction state storage circuit 240. Subsequently, an erasure flag selector 260 independently sets a plurality of erasure flags for the outer codes 120 in each column according to the error corrected row counter 220, the row error correction state storage circuit 230, the counted result outputted by the error-correcting-symbol-in-column counter 250 and stored in the symbol correction state storage circuit 240. Then, a C2 correction circuit 270 implements an error correction for the outer codes 120 in a column direction according to these erasure flags.
FIG. 3 schematically shows a DVD error-correcting code block applied by a conventional product code decoder. Referring to FIGS. 2 and 3, for example, it is assumed that a decoding capability of the column decoder 270 is 16 symbols and the error-corrected row counter 220 counts 17 uncorrectable rows 132 in the error-correcting code block 130 in DVD after performing the inner code decoding procedure for one time. According to the decoding result, the erasure flags of the symbols intersected by a column A and one of the 17 uncorrectable rows 132 are set an erasure value (X) so that the column decoder 270 determines that the column A is uncorrectable and accordingly fails to proceed with an error correction for the column A.
Based on the above discussion, the most serious drawback of the conventional technology is that when the inner code decoding is completed, if the number of the uncorrectable rows in the error-correcting code block 130 is larger than an error-correcting capability of the outer code decoding, the all uncorrectable symbols in this column are set erasure flags. As a result, the outer code decoder completely fails to function, thus adversely affecting the performance of the decoding device.